package unq.ui.carmensandiego

import android.widget.ArrayAdapter
import java.util.List
import org.xtendroid.app.AndroidActivity
import org.xtendroid.app.OnCreate
import retrofit.client.Response
import unq.ui.informacionCaso.Caso
import unq.ui.informacionCaso.Pista
import unq.ui.services.CasoCallBack
import unq.ui.services.CasoService
import unq.ui.services.CasoServiceFactory

@AndroidActivity(R.layout.lugares)
class LugaresActivity extends AbstractCarmenActivity {

	Caso estadoCaso
	private val context = this

	@OnCreate
	def init() {
		val service = new CasoServiceFactory
		estadoCaso = intent.getSerializableExtra(ESTADO_CASO) as Caso
		paisActual.text = estadoCaso.nombrePais
		spinner.agregarAtributos(this, estadoCaso.lugares)
		buttonConsultar.onClickListener = [service.buildCasoService.consultar]
		backButton.setReturnAction(this, estadoCaso)
		
	}

	//Consultando el lugar seleccionado
	def consultar(CasoService service) {
		val eleccion = spinner.selectedItem as String
		service.consultarLugar(estadoCaso.ID, eleccion,
			new CasoCallBack<List<Pista>> {
				override success(List<Pista> pistas, Response arg1) {
					pistas.show
					if (estadoCaso.lugarFinal.equals(eleccion)){
						context.showFinalMessage
						buttonConsultar.visibility = 4
						backButton.visibility = 4
					}
				}
				
			})
	}

	//Muestra el mensaje final.
	def getShowFinalMessage(LugaresActivity activity) {
		if (estadoCaso.culpable.equals(SospechososActivity.OrdenActual))
			context.showToastMessage('''Felicidades detective, ha atrapado a «SospechososActivity.OrdenActual» ''')
		else
			context.showToastMessage('''Mala suerte detective, usted debia atrapar a: «estadoCaso.culpable» ''')

	}

	//Mostrando las pistas resultantes de haber hecho uso del servicio.
	def show(List<Pista> pistas) {
		vistadelista.adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, pistas.map[it.informacion]);
	}


	
	
}